iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0

今天要來講講Pandas使用sort_index排序,
會稍微複習到一些昨天的東西(DAY28 Pandas自訂資料index索引值),
直接來看範例吧。

範例

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行。
這邊為了方便對照,先印出完整的資料來看。

studentsData = {
    'studentId': ['001', '002', '003'],
    'Name': ['A', 'B', 'C'],
    'Height': [175, 153, 164],
    'Weight': [80, 45, 75],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
students = pd.DataFrame(studentsData)
print(students)

印出資料如下,
可以看到系統已自動將資料預設index數值0、1、2。

  studentId Name  Height  Weight         City
0       001    A     175      80     New York
1       002    B     153      45  Los Angeles
2       003    C     164      75      Chicago

這裡複習一下昨天的自訂資料index索引值
把index索引值換掉(這部分不懂的可以回昨天的文章看看),
這裡型別使用字串來做示範。

    studentId Name  Height  Weight         City
id3       001    A     175      80     New York
id1       002    B     153      45  Los Angeles
id2       003    C     164      75      Chicago
index排序 遞增(由小到大)

當資料index索引值已經可以辨識順序時,
可以使用sort_index語法自動排序,
在資料後加上.sort_index()
其中ascending項是可被省略的。
這裡要特別注意的是ascending
ascending參數為布林值,預設為True,
而ascending的參數代表了資料的順序,
簡單來說
True代表了遞增(由小到大)(預設),
False代表了遞減(由大到小);

使用方式如下。

print(students.sort_index()) # ascending預設為True
# print(students.sort_index(ascending=True)) # 與上列相同

印出資料如下,
可以看到index索引值依照順序遞增(由小到大)排列,
而資料順序也隨之移動。

    studentId Name  Height  Weight         City
id1       002    B     153      45  Los Angeles
id2       003    C     164      75      Chicago
id3       001    A     175      80     New York
index排序 遞減(由大到小)

如同前面所述,
這裡加上ascending=False
使排序遞減(由大到小),
使用方式如下。

print(students.sort_index(ascending=False))

印出資料如下,
可以看到index索引值依照順序序遞減(由大到小)排列,
而資料順序也隨之移動。

    studentId Name  Height  Weight         City
id3       001    A     175      80     New York
id2       003    C     164      75      Chicago
id1       002    B     153      45  Los Angeles

今日結語

結合昨天的自訂資料index索引值,
今天學會如何使用Pandas的sort_index排序,
讓資料變得整齊,
才能進一步的做資料的整理。


上一篇
DAY28 Pandas自訂資料index索引值
下一篇
DAY30 Pandas使用sort_values排序
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言